const http = require('../../../utils/https.js');
Page({

  /**
   * 页面的初始数据
   */
  data: {
    productInfo: {}, // 商品基本信息
    productImages: [], // 商品轮播图
    productDetail: '', // 商品详情富文本
    // productId:null,// 商品id

    tag: [
      '深度清洁',
      '强效去污'
    ],
    coupons: [{
        "full": 100,
        "subtract": 20
      },
      {
        "full": 200,
        "subtract": 30
      },
      {
        "full": 300,
        "subtract": 50
      },
    ],

    appraiseNum: 0, // 评论数量
    appraise: [], // 评论列表
    cartCount: 0 // 👈 新增：购物车数量角标
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('商品id', options.id);
    this.setData({
      productId: options.id
    })
    // 获取商品详情数据
    this.getProductDetail(options.id);
    // 获取评论数据
    this.getComments(options.id);
  },

  /**
   * 获取商品详情数据
   */
  getProductDetail(productId) {
    wx.showLoading({
      title: '加载中...'
    });
    http.GET('/product/productinfo/list', {
      id: productId
    }, (res) => {
      wx.hideLoading();
      if (res.code === 200 && res.rows && res.rows.length > 0) {
        let productData = res.rows[0];
        let detailHtml = productData.productDetail?.description || '<p>暂无详细介绍</p>';

        // ✅ 处理 HTML：给 img 添加自适应样式
        detailHtml = detailHtml.replace(/<img/gi, '<img style="max-width:100%;height:auto;display:block;"');

        this.setData({
          productInfo: productData,
          productImages: productData.productImages || [],
          productDetail: detailHtml
        });
      } else {
        wx.showToast({
          title: '获取商品信息失败',
          icon: 'none'
        });
      }
    }, (err) => {
      wx.hideLoading();
      wx.showToast({
        title: '网络请求失败',
        icon: 'none'
      });
    });
  },

  /**
   * 获取评论数据
   */
  getComments(productId) {
    // 发送请求获取评论
    http.GET(
      '/comment/comments/list', {
        productId: productId
      }, // 传入商品ID查询对应评论
      (res) => {
        // 检查请求是否成功
        if (res.code === 200 && res.rows) {
          // 1. 首先过滤掉orderId为null的评论
          const validComments = res.rows.filter(comment => comment.orderId !== null);

          // 2. 从有效评论中取前三条展示
          const limitedRows = validComments.slice(0, 3);

          // 处理评论数据，转换为页面需要的格式
          const comments = limitedRows.map(comment => {
            // 处理评论图片，将字符串拆分为数组
            let imgUrls = [];
            if (comment.imageUrls) {
              // 如果是逗号分隔的多个图片地址
              imgUrls = comment.imageUrls.split(',').map(url => url.trim());
            } else if (comment.imageUrlList && comment.imageUrlList.length > 0) {
              // 使用imageUrlList数组
              imgUrls = comment.imageUrlList;
            }

            return {
              avatarUrl: comment.avatar,
              name: comment.userName || '匿名用户',
              time: comment.createdAt || '',
              score: comment.rating || 5,
              text: comment.content || '',
              imgUrls: imgUrls
            };
          });

          // 3. 重要：使用过滤后的有效评论总数
          this.setData({
            appraise: comments,
            appraiseNum: validComments.length // 这里使用过滤后的评论总数
          });
        } else {
          wx.showToast({
            title: '获取评论失败',
            icon: 'none'
          });
        }
      },
      (err) => {
        // 显示错误信息
        wx.showToast({
          title: '评论加载失败',
          icon: 'none'
        });
        console.error('获取评论失败:', err);
      }
    );
  },
  toviews(e) {
    var productId = e.currentTarget.dataset.id
    console.log("获取到的productId:", e.currentTarget.dataset.id);
    wx.navigateTo({
      url: `/index/pages/mzhGoodsReviews/mzhGoodsReviews?productId=${productId}`,
    })
  },

  onClickIcon() {
    wx.switchTab({
      url: '/pages/shopCart/shopCart',
    })
  },


  onClickButtonCart() {
    const userInfo = wx.getStorageSync('userInfo');
    if (!userInfo || !userInfo.userId) {
        wx.showToast({
            title: '请先登录',
            icon: 'none'
        });
        return;
    }
    const productId = this.data.productInfo.id;
    const price = this.data.productInfo.price;

    const params = {
        userId: userInfo.userId,
        productId: productId,
        quantity: 1,
        price: price
    };

    wx.showLoading({
        title: '加入购物车中...'
    });
    http.POST('/order/items', params, (res) => {
        wx.hideLoading();
        if (res.code === 200) {
            wx.showToast({
                title: '加入购物车成功',
                icon: 'success'
            });

            // 👇 加入购物车成功后，更新 cartCount
            this.setData({
                cartCount: this.data.cartCount + 1
            });
        } else {
            wx.showToast({
                title: res.msg || '加入购物车失败',
                icon: 'none'
            });
        }
    }, (err) => {
        wx.hideLoading();
        wx.showToast({
            title: '网络错误，加入失败',
            icon: 'none'
        });
        console.error('加入购物车失败:', err);
    });
},


  onClickButton() {
    const userInfo = wx.getStorageSync('userInfo');
    if (!userInfo || !userInfo.userId) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    const productId = this.data.productInfo.id;
    const price = this.data.productInfo.price; // 默认总金额为单价
    var order = [this.data.productInfo]
    var productOrder = JSON.stringify(order)
    wx.setStorageSync('productOrder', productOrder)
    wx.navigateTo({
      url: '/shopCart/pages/realorder/realorder?totalPrice=' + price + '&order=',
    })

    console.log(this.data.productInfo);

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    const userInfo = wx.getStorageSync('userInfo');
    if (userInfo && userInfo.userId) {
      http.GET(`/order/items/user/${userInfo.userId}`, {}, (res) => {
        if (res.code === 200) {
          let total = 0;
          res.data.forEach(item => {
            total += item.quantity;
          });
          this.setData({
            cartCount: total
          });
        }
      });
    }
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新时重新加载数据
    const productId = this.data.productInfo.id;
    if (productId) {
      this.getProductDetail(productId);
      this.getComments(productId);
    }
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})